package br.com.unieuro.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import br.com.unieuro.dominio.Config;
import br.com.unieuro.dominio.Usuario;

public class ConfigDAO {
	
	String url = "jdbc:postgresql://127.0.0.1:5432/bd_sgi";
	String usuario = "postgres";
	String senha = "bolseir0";
	
	public void updateConf(Config conf){
		try{
			Class.forName("org.postgresql.Driver");
			Connection con = DriverManager.getConnection(url, usuario, senha);
			PreparedStatement st = con.prepareStatement("UPDATE configura SET  ehoriz=?, evert=?, estabilizador=?, tolerancia =?,  tempocompara=?, endimgatual=?, endimgbase=?, endimgfinal=? WHERE id=0");
		
			st.setInt(1, conf.geteHoriz());
			st.setInt(2, conf.geteVert());
			st.setInt(3, conf.getEstabilizador());
			st.setInt(4, conf.getTolerancia());
			st.setInt(5, conf.getTempoCompara());
			st.setString(6, conf.getEndImgAtual());
			st.setString(7, conf.getEndImgBase());
			st.setString(8, conf.getEndImgFinal());
			st.setString(10, conf.getInicia());

			st.executeUpdate();
			st.close();
			
			con.close();
		}catch(SQLException erro){
			erro.printStackTrace();
		}catch(ClassNotFoundException erro){
			//Para capturar o erro do carregamento do Driver
			erro.printStackTrace();
		}		
	}
	
	public ArrayList<Config> listarConfiguracoes() {
		ArrayList<Config> lista = new ArrayList<Config>();
		try {
			Class.forName("org.postgresql.Driver");
			Connection con = DriverManager.getConnection(url, usuario, senha);
			Statement st = con.createStatement();
			ResultSet resultado = st.executeQuery("SELECT * FROM configura WHERE id='0'");

			while (resultado.next()) {
				Config conf = new Config();
				conf.seteHoriz(resultado.getInt("ehoriz"));
				conf.seteVert(resultado.getInt("evert"));
				conf.setTolerancia(resultado.getInt("tolerancia"));
				conf.setEstabilizador(resultado.getInt("estabilizador"));
				conf.setTempoCompara(resultado.getInt("tempocompara"));
				conf.setEndImgAtual(resultado.getString("endimgatual"));
				conf.setEndImgBase(resultado.getString("endimgbase"));
				conf.setEndImgFinal(resultado.getString("endimgfinal"));
				conf.setInicia(resultado.getString("inicia"));
				lista.add(conf);
			}
			st.close();
			con.close();
		} catch (SQLException erro) {
			erro.printStackTrace();
		} catch (ClassNotFoundException erro) {
			System.out.println("Erro do carregamento do Driver");
			erro.printStackTrace();
		}
		return lista;
	}
}

